// 响应接口
export interface GetAllInfoRes {
    cpu: GetCpuInfoRes,
    files: GetSysFileInfoRes[],
    jvm: GetJvmInfoRes,
    memory: GetMemInfoRes,
    system: GetSysInfoRes
}

// 响应接口
export interface GetCpuInfoRes {
  /* */
  name: string;

  /* */
  physicalCount: number;

  /* */
  logicalCount: number;

  /* */
  userUsage: number;

  /* */
  systemUsage: number;

  /* */
  idleRate: number;

  /* */
  ioWaitRate: number;

  /* */
  totalUsage: number;

  /* */
  currentFreq: number;

  /* */
  maxFreq: number;

  /* */
  contextSwitches: number;

  /* */
  interrupts: number;
}

// 响应接口
export interface GetJvmInfoRes {
  /* */
  name: string;

  /* */
  version: string;

  /* */
  vendor: string;

  /* */
  startTime: string;

  /* */
  runTime: number;

  /* */
  heapInit: number;

  /* */
  heapMax: number;

  /* */
  heapUsed: number;

  /* */
  heapCommitted: number;

  /* */
  nonHeapInit: number;

  /* */
  nonHeapMax: number;

  /* */
  nonHeapUsed: number;

  /* */
  nonHeapCommitted: number;

  /* */
  memoryUsage: number;

  /* */
  loadedClassCount: number;

  /* */
  totalLoadedClassCount: number;

  /* */
  unloadedClassCount: number;

  /* */
  threadCount: number;

  /* */
  peakThreadCount: number;

  /* */
  daemonThreadCount: number;
}

// 响应接口
export interface GetMemInfoRes {
  /* */
  total: number;

  /* */
  used: number;

  /* */
  free: number;

  /* */
  usage: number;

  /* */
  swapTotal: number;

  /* */
  swapUsed: number;

  /* */
  swapFree: number;

  /* */
  swapUsage: number;

  /* */
  pageSize: number;

  /* */
  physicalTotal: number;

  /* */
  physicalUsed: number;

  /* */
  physicalFree: number;

  /* */
  physicalUsage: number;
}

// 响应接口
export interface GetSysFileInfoRes {
  /* */
  dirName: string;

  /* */
  typeName: string;

  /* */
  total: number;

  /* */
  used: number;

  /* */
  free: number;

  /* */
  usage: number;

  /* */
  diskReads: number;

  /* */
  diskWrites: number;

  /* */
  readBytes: number;

  /* */
  writeBytes: number;

  /* */
  queue: Record<string, unknown>;

  /* */
  serviceTime: Record<string, unknown>;

  /* */
  mountPoint: string;

  /* */
  options: string;

  /* */
  usable: boolean;
}

// 响应接口
export interface GetSysInfoRes {
  /* */
  computerName: string;

  /* */
  computerIp: string;

  /* */
  osName: string;

  /* */
  osArch: string;

  /* */
  osVersion: string;

  /* */
  bootTime: string;

  /* */
  uptime: number;

  /* */
  user: string;

  /* */
  processCount: number;

  /* */
  threadCount: number;

  /* */
  systemLoad1: number;

  /* */
  systemLoad5: number;

  /* */
  systemLoad15: number;

  /* */
  manufacturer: string;

  /* */
  model: string;

  /* */
  serialNumber: string;

  /* */
  firmwareVersion: string;

  /* */
  networkInterfaces: {
    /* */
    name: string;

    /* */
    displayName: string;

    /* */
    mac: string;

    /* */
    ipv4: string;

    /* */
    ipv6: string;

    /* */
    bytesRecv: number;

    /* */
    bytesSent: number;

    /* */
    packetsRecv: number;

    /* */
    packetsSent: number;
  }[];
}
